#include "led.h"

void led_init(void)
{
    GPIO_InitTypeDef GPIO_InitStruct;

    RCC_AHB1PeriphClockCmd(RCC_LED_GROUP, ENABLE);

    GPIO_InitStruct.GPIO_Pin = LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStruct.GPIO_Speed = GPIO_High_Speed;
    GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(LED_GROUP, &GPIO_InitStruct);
}
int test = 0;
void led_blink(void)
{
    GPIO_ResetBits(LED_GROUP, LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN);
    delay_ms(500);
    test++;
    GPIO_SetBits(LED_GROUP, LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN);
    delay_ms(500);
    test++;
}

void led_water(void)
{
    GPIO_ResetBits(LED_GROUP, LED1_PIN);
    delay(300);
    GPIO_ResetBits(LED_GROUP, LED2_PIN);
    delay(300);
    GPIO_ResetBits(LED_GROUP, LED3_PIN);
    delay(300);
    GPIO_ResetBits(LED_GROUP, LED4_PIN);
    delay(300);
    GPIO_SetBits(LED_GROUP, LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN);
}

void led_change_speed_water(uint8_t speed_mode)
{
    GPIO_ResetBits(LED_GROUP, LED1_PIN);
    delay_ms_led(speed_mode * 200 + 200);
    GPIO_ResetBits(LED_GROUP, LED2_PIN);
    delay_ms_led(speed_mode * 200 + 200);
    GPIO_ResetBits(LED_GROUP, LED3_PIN);
    delay_ms_led(speed_mode * 200 + 200);
    GPIO_ResetBits(LED_GROUP, LED4_PIN);
    delay_ms_led(speed_mode * 200 + 200);
    GPIO_SetBits(LED_GROUP, LED1_PIN | LED2_PIN | LED3_PIN | LED4_PIN);
    delay_ms_led(speed_mode * 200 + 200);
}
